home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-07-26 | 113.4 KB | 2,050 lines |
-
-
- ksh(C) 06 January 1993 ksh(C)
-
- _N_a_m_e
-
- ksh, rksh - KornShell, a standard/restricted command and programming lan-
- guage
-
- _S_y_n_t_a_x
-
- kksshh [ +-aefhikmnoprstuvx ] [ +-o _oo_pp_tt_ii_oo_nn ] ... [ --cc _ss_tt_rr_ii_nn_gg ] [ _aa_rr_gg ... ]
-
- rrkksshh [ +-aefhikmnoprstuvx ] [ +-o _oo_pp_tt_ii_oo_nn ] ... [ --cc _ss_tt_rr_ii_nn_gg ] [ _aa_rr_gg ... ]
-
- _D_e_s_c_r_i_p_t_i_o_n
-
- kksshh is a command and programming language that executes commands read
- from a terminal or a file. rrkksshh is a restricted version of the command
- interpreter kksshh; it is used to set up login names and execution environ-
- ments whose capabilities are more controlled than those of the standard
- shell. See ``Invocation'' below for the meaning of arguments to the
- shell.
-
- _D_e_f_i_n_i_t_i_o_n_s
-
- A _m_e_t_a_c_h_a_r_a_c_t_e_r is one of the following characters:
-
- ; & ( ) | < > new-line space tab
-
- A _b_l_a_n_k is a space or a tab.
-
- An _i_d_e_n_t_i_f_i_e_r is a sequence of letters, digits, or underscores starting
- with a letter or underscore. Identifiers are used as names for functions
- and named parameters.
-
- A _w_o_r_d is a sequence of characters separated by one or more non-quoted
- metacharacters.
-
- _C_o_m_m_a_n_d_s
-
- A _c_o_m_m_a_n_d is a sequence of characters in the syntax of the shell lan-
- guage. The shell reads each command and carries out the desired action
- either directly or by invoking separate utilities.
-
- A _s_p_e_c_i_a_l _c_o_m_m_a_n_d is a command that is carried out by the shell without
- creating a separate process. Except for documented side effects, most
- special commands can be implemented as separate utilities.
-
- A _s_i_m_p_l_e-_c_o_m_m_a_n_d is a sequence of blank-separated words which may be pre-
- ceded by a parameter assignment list. (See ``Environment'' below). The
- first word specifies the name of the command to be executed. Except as
- specified below, the remaining words are passed as arguments to the
- invoked command. The command name is passed as argument 0 (see eexxeecc(S)).
- The value of a simple-command is its exit status if it terminates nor-
- mally, or (octal) 200+_ss_tt_aa_tt_uu_ss if it terminates abnormally (see ssiiggnnaall(S)
- for a list of status values).
-
- A _p_i_p_e_l_i_n_e is a sequence of one or more commands separated by ``|''. The
- standard output of each command but the last is connected by a ppiippee(S) to
- the standard input of the next command. Each command is run as a
- separate process; the shell waits for the last command to terminate. The
- exit status of a pipeline is the exit status of the last command.
-
- A _l_i_s_t is a sequence of one or more pipelines separated by ;; && &&&& or ||||
- and optionally terminated by ;; && or ||&&. Of these five symbols, &&&& and ||||
- have highest precedence. The following three symbols, ;; && and ||&& are of
- equal precedence, as are &&&& and ||||. A semicolon (;) causes sequential
- execution of the preceding pipeline; an ampersand (&) causes asynchronous
- execution of the preceding pipeline (that is, the shell does _n_o_t wait for
- that pipeline to finish). The symbol ||&& causes asynchronous execution of
- the preceding command or pipeline with a two-way pipe established to the
- parent shell. The parent shell can write to and read from the standard
- input and standard output of the spawned command using the --pp option of
- the special commands rreeaadd and pprriinntt (described later). The symbol &&&& (||||)
- causes the list following it to be executed only if the preceding pipe-
- line returns a zero (non-zero) value. An arbitrary number of new-lines
- may appear in a list, instead of a semicolon, to delimit a command.
-
- A command is either a simple-command or one of the following compound-
- commands. A _c_o_m_p_o_u_n_d-_c_o_m_m_a_n_d is a command that results in the execution
- of one or more simple-commands, depending upon the state of its input.
- Unless otherwise stated, the value returned by a command is that of the
- last simple-command executed in the command.
-
- ffoorr _ii_dd_ee_nn_tt_ii_ff_ii_ee_rr [ iinn _ww_oo_rr_dd ... ] ;;ddoo _ll_ii_ss_tt ;;ddoonnee
- Each time a ffoorr command is executed, _ii_dd_ee_nn_tt_ii_ff_ii_ee_rr is set to the next
- word taken from the iinn _ww_oo_rr_dd list. If iinn _ww_oo_rr_dd ... is omitted, then
- the ffoorr command executes the ddoo _ll_ii_ss_tt once for each positional param-
- eter that is set (see ``Parameter substitution'' below). Execution
- ends when there are no more words in the list.
-
- sseelleecctt _ii_dd_ee_nn_tt_ii_ff_ii_ee_rr [ iinn _ww_oo_rr_dd ... ] ;;ddoo _ll_ii_ss_tt ;;ddoonnee
- A sseelleecctt command prints on standard error (file descriptor 2), the
- set of words, each preceded by a number. If iinn _ww_oo_rr_dd ... is omitted,
- then the positional parameters are used instead (see ``Parameter
- substitution'' below). The PS3 prompt is printed and a line is read
- from the standard input. If this line consists of the number of one
- of the listed words, then the value of the parameter _ii_dd_ee_nn_tt_ii_ff_ii_ee_rr is
- set to the word corresponding to this number. If this line is empty
- the selection list is printed again. Otherwise the value of the
- parameter _ii_dd_ee_nn_tt_ii_ff_ii_ee_rr is set to null. The contents of the line read
- from standard input is saved in the parameter RREEPPLLYY. The list is
- executed for each selection until a break or end-of-file is encoun-
- tered.
-
- ccaassee _ww_oo_rr_dd iinn [ [((] _pp_aa_tt_tt_ee_rr_nn [ | _pp_aa_tt_tt_ee_rr_nn ] ... )) _ll_ii_ss_tt ;;;; ] ... eessaacc
- A ccaassee command executes the list associated with the first pattern
- that matches _ww_oo_rr_dd. The form of the patterns is the same as that
- used for file-name generation (see ``File name generation'' below).
-
- iiff _ll_ii_ss_tt ;;tthheenn _ll_ii_ss_tt [ eelliiff _ll_ii_ss_tt ;;tthheenn _ll_ii_ss_tt ] ... [ ;;eellssee _ll_ii_ss_tt ] ;;ffii
- The list following iiff is executed and, if it returns a zero exit
- status, the list following the first tthheenn is executed. Otherwise,
- the list following eelliiff is executed and, if its value is zero, the
- list following the next tthheenn is executed. Failing that, the eellssee
- list is executed. If no eellssee list or tthheenn list is executed, the iiff
- command returns a zero exit status.
-
- wwhhiillee _ll_ii_ss_tt ;;ddoo _ll_ii_ss_tt ;;ddoonnee
- uunnttiill _ll_ii_ss_tt ;;ddoo _ll_ii_ss_tt ;;ddoonnee
- A wwhhiillee command repeatedly executes the wwhhiillee list and, if the exit
- status of the last command in the list is zero, executes the ddoo
- list; otherwise the loop terminates. If no commands in the ddoo list
- are executed, then the wwhhiillee command returns a zero exit status;
- uunnttiill may be used in place of wwhhiillee to negate the loop termination
- test.
-
- (( _ll_ii_ss_tt ))
- Execute _ll_ii_ss_tt in a separate environment. Note, that if two adjacent
- open parentheses are needed for nesting, a space must be inserted to
- avoid arithmetic evaluation as described below.
-
- {{ _ll_ii_ss_tt ;;}}
- _ll_ii_ss_tt is simply executed. Note that unlike the metacharacters ``(''
- and ``)'', ``{'' and ``}'' are reserved words and must be at the
- beginning of a line or after a ``;'' in order to be recognized.
-
- [[[[ _ee_xx_pp_rr_ee_ss_ss_ii_oo_nn ]]]]
- Evaluates _ee_xx_pp_rr_ee_ss_ss_ii_oo_nn and returns a zero exit status when _ee_xx_pp_rr_ee_ss_ss_ii_oo_nn
- is true. See ``Conditional expressions'' below, for a description
- of _ee_xx_pp_rr_ee_ss_ss_ii_oo_nn.
-
- ffuunnccttiioonn _ii_dd_ee_nn_tt_ii_ff_ii_ee_rr {{ _ll_ii_ss_tt ;;}}
- _ii_dd_ee_nn_tt_ii_ff_ii_ee_rr (()) {{ _ll_ii_ss_tt ;;}}
- Define a function which is referenced by _ii_dd_ee_nn_tt_ii_ff_ii_ee_rr. The body of
- the function is the list of commands between ``{'' and ``}''. (See
- ``Functions'' below.)
-
- ttiimmee _pp_ii_pp_ee_ll_ii_nn_ee
- The _pp_ii_pp_ee_ll_ii_nn_ee is executed and the elapsed time as well as the user
- and system time are printed on standard error.
-
- The following reserved words are only recognized as the first word of a
- command and when not quoted:
-
- iiff tthheenn eellssee eelliiff ffii ccaassee
- eessaacc ffoorr wwhhiillee uunnttiill ddoo ddoonnee
- {{ }} ffuunnccttiioonn sseelleecctt ttiimmee [[[[ ]]]]
-
- _C_o_m_m_e_n_t_s
-
- A word beginning with ``#'' causes that word and all the following char-
- acters up to a new-line to be ignored.
-
- _A_l_i_a_s_i_n_g
-
- The first word of each command is replaced by the text of an alias if an
- alias for this word has been defined. An alias name consists of any num-
- ber of characters excluding metacharacters, quoting characters, file
- expansion characters, command substitution characters, and the equals
- sign (=). The replacement string can contain any valid shell script
- including the metacharacters listed above. The first word of each com-
- mand in the replaced text, other than any that are in the process of
- being replaced, will be tested for aliases. If the last character of the
- alias value is a _b_l_a_n_k then the word following the alias will also be
- checked for alias substitution. Aliases can be used to redefine special
- built in commands but cannot be used to redefine the reserved words
- listed above. Aliases can be created, listed, and exported with the
- aalliiaass command and can be removed with the uunnaalliiaass command. Exported
- aliases remain in effect for scripts invoked by name, but must be reini-
- tialized for separate invocations of the shell (see ``Invocation''
- below).
-
- Aliasing is performed when scripts are read, not while they are executed.
- Therefore, for an alias to take effect the aalliiaass definition command has
- to be executed before the command which references the alias is read.
-
- Aliases are frequently used as an abbreviation for full path names. An
- option to the aliasing facility allows the value of the alias to be auto-
- matically set to the full pathname of the corresponding command. These
- aliases are called _t_r_a_c_k_e_d aliases. The value of a tracked alias is
- defined the first time the corresponding command is looked up and becomes
- undefined each time the PPAATTHH variable is reset. These aliases remain
- tracked so that the next subsequent reference will redefine the value.
- Several tracked aliases are compiled into the shell. The --hh option of
- the sseett command makes each referenced command name into a tracked alias.
-
- The following _e_x_p_o_r_t_e_d aliases are compiled into the shell but can be
- unset or redefined:
-
- aauuttoollooaadd='ttyyppeesseett --ffuu'
- ffaallssee='lleett 00'
- ffuunnccttiioonnss='ttyyppeesseett --ff'
- hhaasshh='aalliiaass --tt'
- hhiissttoorryy='ffcc --ll'
- iinntteeggeerr='ttyyppeesseett --ii'
- nnoohhuupp='nnoohhuupp<<'
- rr='ffcc --ee --'
- ttrruuee='::'
- ttyyppee='wwhheennccee --vv'
-
- (The alias of nnoohhuupp with a trailing space allows nnoohhuupp to be used with
- aliases.)
-
- _T_i_l_d_e _s_u_b_s_t_i_t_u_t_i_o_n
-
- After alias substitution is performed, each word is checked to see if it
- begins with an unquoted ``~''. If it does, then the word up to a ``/''
- is checked to see if it matches a user name in the /_e_t_c/_p_a_s_s_w_d file. If
- a match is found, the ``~'' and the matched login name are replaced by
- the login directory of the matched user. This is called a _t_i_l_d_e _s_u_b_s_t_i_-
- _t_u_t_i_o_n. If no match is found, the original text is left unchanged. A
- ``~'' by itself, or in front of a ``/'', is replaced by the value of the
- HHOOMMEE parameter. A ``~'' followed by a ``+'' or ``-'' is replaced by $$PPWWDD
- and $$OOLLDDPPWWDD respectively.
-
- In addition, tilde substitution is attempted when the value of a _v_a_r_i_a_b_l_e
- _a_s_s_i_g_n_m_e_n_t _p_a_r_a_m_e_t_e_r begins with a ``~''.
-
- _C_o_m_m_a_n_d _s_u_b_s_t_i_t_u_t_i_o_n
-
- The standard output from a command enclosed in parentheses preceded by a
- dollar sign ($) or a pair of grave accents (``) may be used as part or
- all of a word; trailing new-lines are removed. In the second (archaic)
- form, the string between the quotes is processed for special quoting
- characters before the command is executed. (See ``Quoting''.) The com-
- mand substitution $$((ccaatt _ff_ii_ll_ee)) can be replaced by the equivalent but fas-
- ter $$((<<_ff_ii_ll_ee)). Command substitution of most special commands that do not
- perform input/output redirection are carried out without creating a
- separate process.
-
- An arithmetic expression enclosed in double parentheses preceded by a
- dollar sign ( $$((((_ee_xx_pp_rr)))) ) is replaced by the value of the arithmetic
- expression within the double parentheses.
-
- _P_a_r_a_m_e_t_e_r _s_u_b_s_t_i_t_u_t_i_o_n
-
- A parameter is an _ii_dd_ee_nn_tt_ii_ff_ii_ee_rr, one or more digits, or any of the charac-
- ters **, @@, ##, ??, --, $$, and !!. A _n_a_m_e_d parameter (a parameter denoted by
- an identifier) has a value and zero or more attributes. Named parameters
- can be assigned values and attributes by using the ttyyppeesseett special com-
- mand. The attributes supported by the shell are described later with the
- ttyyppeesseett special command. Exported parameters pass values and attributes
- to the environment.
-
- The shell supports a one-dimensional array facility. An element of an
- array parameter is referenced by a _s_u_b_s_c_r_i_p_t. A subscript is denoted by
- a ``['', followed by an arithmetic expression (see ``Arithmetic evalua-
- tion'' below) followed by a ``]''. To assign values to an array, use
- sseett --AA _nn_aa_mm_ee _vv_aa_ll_uu_ee ... . The value of all subscripts must be in the range
- of 0 through 1023. Arrays need not be declared. Any reference to a
- named parameter with a valid subscript is legal and an array will be cre-
- ated if necessary. Referencing an array without a subscript is
- equivalent to referencing the element zero.
-
- The value of a named parameter may also be assigned by writing:
-
- nnaammee == _vv_aa_ll_uu_ee [ nnaammee == _vv_aa_ll_uu_ee ] ...
-
- If the integer attribute, --ii, is set for _nn_aa_mm_ee the _vv_aa_ll_uu_ee is subject to
- arithmetic evaluation as described below.
-
- Positional parameters, parameters denoted by a number, may be assigned
- values with the sseett special command. Parameter $$00 is set from argument
- zero when the shell is invoked.
-
- The character ``$'' is used to introduce substitutable parameters.
-
- $${{_pp_aa_rr_aa_mm_ee_tt_ee_rr}}
- The shell reads all the characters from ``${'' to the matching ``}''
- as part of the same word even if it contains braces or metacharac-
- ters. The value, if any, of the parameter is substituted. The
- braces are required when _pp_aa_rr_aa_mm_ee_tt_ee_rr is followed by a letter, digit,
- or underscore that is not to be interpreted as part of its name or
- when a named parameter is subscripted. If _pp_aa_rr_aa_mm_ee_tt_ee_rr is one or more
- digits then it is a positional parameter. A positional parameter of
- more than one digit must be enclosed in braces. If _pp_aa_rr_aa_mm_ee_tt_ee_rr is
- ``*'' or ``@'', then all the positional parameters, starting with
- $$11, are substituted (separated by a field separator character). If
- an array identifier with subscript ``*'' or ``@'' is used, then the
- value for each of the elements is substituted (separated by a field
- separator character).
-
- $${{##_pp_aa_rr_aa_mm_ee_tt_ee_rr}}
- If _pp_aa_rr_aa_mm_ee_tt_ee_rr is ``*'' or ``@'', the number of positional parameters
- is substituted. Otherwise, the length of the value of the parameter
- is substituted.
-
- $${{##_ii_dd_ee_nn_tt_ii_ff_ii_ee_rr[[**]]}}
- The number of elements in the array identifier is substituted.
-
- $${{_pp_aa_rr_aa_mm_ee_tt_ee_rr::--_ww_oo_rr_dd}}
- If _pp_aa_rr_aa_mm_ee_tt_ee_rr is set and is non-null then substitute its value; oth-
- erwise substitute _ww_oo_rr_dd.
-
- $${{_pp_aa_rr_aa_mm_ee_tt_ee_rr::==_ww_oo_rr_dd}}
- If _pp_aa_rr_aa_mm_ee_tt_ee_rr is not set or is null then set it to _ww_oo_rr_dd; the value of
- the parameter is then substituted. Positional parameters may not be
- assigned to in this way.
-
- $${{_pp_aa_rr_aa_mm_ee_tt_ee_rr::??_ww_oo_rr_dd}}
- If _pp_aa_rr_aa_mm_ee_tt_ee_rr is set and is non-null then substitute its value; oth-
- erwise, print _ww_oo_rr_dd and exit from the shell. If _ww_oo_rr_dd is omitted then
- a standard message is printed.
-
- $${{_pp_aa_rr_aa_mm_ee_tt_ee_rr::++_ww_oo_rr_dd}}
- If _pp_aa_rr_aa_mm_ee_tt_ee_rr is set and is non-null then substitute _ww_oo_rr_dd; otherwise
- substitute nothing.
-
- $${{_pp_aa_rr_aa_mm_ee_tt_ee_rr##_pp_aa_tt_tt_ee_rr_nn}}
- $${{_pp_aa_rr_aa_mm_ee_tt_ee_rr####_pp_aa_tt_tt_ee_rr_nn}}
- If the shell pattern matches the beginning of the value of _pp_aa_rr_aa_mm_ee_--
- _tt_ee_rr, then the value of this substitution is the value of the parame-
- ter with the matched portion deleted; otherwise the value of this
- parameter is substituted. In the first form the smallest matching
- pattern is deleted and in the second form the largest matching pat-
- tern is deleted.
-
- $${{_pp_aa_rr_aa_mm_ee_tt_ee_rr%%_pp_aa_tt_tt_ee_rr_nn}}
- $${{_pp_aa_rr_aa_mm_ee_tt_ee_rr%%%%_pp_aa_tt_tt_ee_rr_nn}}
- If the shell pattern matches the end of the value of _pp_aa_rr_aa_mm_ee_tt_ee_rr, then
- the value of this substitution is the value of the _pp_aa_rr_aa_mm_ee_tt_ee_rr with
- the matched part deleted; otherwise substitute the value of parame-
- ter. In the first form the smallest matching pattern is deleted and
- in the second form the largest matching pattern is deleted.
-
- In the above, _ww_oo_rr_dd is not evaluated unless it is to be used as the sub-
- stituted string, so that, in the following example, ppwwdd is executed only
- if dd is not set or is null:
-
- eecchhoo $${{dd::--$$((ppwwdd))}}
-
- If the colon (:) is omitted from the above expressions, then the shell
- only checks whether _pp_aa_rr_aa_mm_ee_tt_ee_rr is set or not.
-
- The following parameters are automatically set by the shell:
-
- ## The number of positional parameters in decimal.
-
- -- Flags supplied to the shell on invocation or by the sseett com-
- mand.
-
- ?? The decimal value returned by the last executed command.
-
- $$ The process number of this shell.
-
- __ Initially, the value ``_'' is the absolute pathname of the
- shell or script being executed as passed in the environment.
- Subsequently it is assigned the last argument of the previous
- command. This parameter is not set for commands which are
- asynchronous. This parameter is also used to hold the name
- of the matching MMAAIILL file when checking for mail.
-
- !! The process number of the last background command invoked.
-
- EERRRRNNOO The value of eerrrrnnoo as set by the most recent failed system
- call. This value is system dependent and is intended for
- debugging purposes.
-
- LLIINNEENNOO The line number of the current line within the script or
- function being executed.
-
- OOLLDDPPWWDD The previous working directory set by the ccdd command.
-
- OOPPTTAARRGG The value of the last option argument processed by the
- ggeettooppttss special command.
-
- OOPPTTIINNDD The index of the last option argument processed by the
- ggeettooppttss special command.
-
- PPPPIIDD The process number of the parent of the shell.
-
- PPWWDD The present working directory set by the ccdd command.
-
- RRAANNDDOOMM Each time this parameter is referenced, a random integer,
- uniformly distributed between 0 and 32767, is generated. The
- sequence of random numbers can be initialized by assigning a
- numeric value to RRAANNDDOOMM.
-
- RREEPPLLYY This parameter is set by the sseelleecctt statement and by the rreeaadd
- special command when no arguments are supplied.
-
- SSEECCOONNDDSS Each time this parameter is referenced, the number of seconds
- since shell invocation is returned. If this parameter is
- assigned a value, then the value returned upon reference will
- be the value that was assigned plus the number of seconds
- since the assignment.
-
- The following parameters are used by the shell:
-
- CCDDPPAATTHH The search path for the ccdd command.
-
- CCOOLLUUMMNNSS If this variable is set, the value is used to define the
- width of the edit window for the shell edit modes and for
- printing select lists.
-
- EEDDIITTOORR If the value of this variable ends in eemmaaccss, ggmmaaccss, or vvii and
- the VVIISSUUAALL variable is not set, then the corresponding option
- (see ``Special commands'' -- sseett below) will be turned on.
-
- EENNVV If this parameter is set, then parameter substitution is per-
- formed on the value to generate the pathname of the script
- that will be executed when the shell is invoked. (See
- ``Invocation'' below.) This file is typically used for alias
- and function definitions.
-
- FFCCEEDDIITT The default editor name for the ffcc command.
-
- FFPPAATTHH The search path for function definitions. This path is
- searched when a function with the --uu attribute is referenced
- and when a command is not found. If an executable file is
- found, then it is read and executed in the current environ-
- ment.
-
- IIFFSS Internal field separators, normally ssppaaccee, ttaabb, and nneeww--lliinnee,
- that are used to separate command words which result from
- command or parameter substitution, and for separating words
- with the special command rreeaadd. The first character of the
- IIFFSS parameter is used to separate arguments for the $$** sub-
- stitution. (See ``Quoting'' below.)
-
- HHIISSTTFFIILLEE If this parameter is set when the shell is invoked, then the
- value is the pathname of the file that will be used to store
- the command history. (See ``Command re-entry'' below.)
-
- HHIISSTTSSIIZZEE If this parameter is set when the shell is invoked, then the
- number of previously entered commands that are accessible by
- this shell will be greater than or equal to this number. The
- default is 128.
-
- HHOOMMEE The default argument (home directory) for the ccdd command.
-
- LLIINNEESS If this variable is set, the value is used to determine the
- column length for printing sseelleecctt lists. sseelleecctt lists will
- print vertically until about two-thirds of LLIINNEESS lines are
- filled.
-
- MMAAIILL If this parameter is set to the name of a mail file and the
- MMAAIILLPPAATTHH parameter is not set, then the shell informs the
- user of arrival of mail in the specified file.
-
- MMAAIILLCCHHEECCKK This variable specifies how often (in seconds) the shell will
- check for changes in the modification time of any of the
- files specified by the MMAAIILLPPAATTHH or MMAAIILL parameters. The
- default value is 600 seconds. When the time has elapsed the
- shell will check before issuing the next prompt.
-
- MMAAIILLPPAATTHH A colon (:) separated list of file names. If this parameter
- is set then the shell informs the user of any modifications
- to the specified files that have occurred within the last
- MMAAIILLCCHHEECCKK seconds. Each file name can be followed by a ``?''
- and a message that will be printed. The message will undergo
- parameter substitution with the parameter $$__ defined as the
- name of the file that has changed. The default message is
-
- you have mail in $_.
-
- PPAATTHH The search path for commands (see ``Execution'' below). The
- user may not change PPAATTHH if executing under rrkksshh (except in
- ._p_r_o_f_i_l_e).
-
- PPSS11 The value of this parameter is expanded for parameter substi-
- tution to define the primary prompt string which by default
- is ``$ '' (dollar-space). The character ``!'' in the primary
- prompt string is replaced by the command number (see ``Com-
- mand re-entry'' below).
-
- PPSS22 Secondary prompt string, by default ``>> ''.
-
- PPSS33 Selection prompt string used within a sseelleecctt loop, by default
- ``##?? ''.
-
- PPSS44 The value of this parameter is expanded for parameter substi-
- tution and precedes each line of an execution trace. If
- omitted, the execution trace prompt is ``++ ''.
-
- SSHHEELLLL The pathname of the shell is kept in the environment. At
- invocation, if the basename of this variable matches the pat-
- tern **rr**sshh, then the shell becomes restricted.
-
- TTMMOOUUTT If TTMMOOUUTT is set to a value greater than zero, the shell will
- terminate if a command is not entered within the prescribed
- number of seconds after issuing the PPSS11 prompt. (Note that
- the shell can be compiled with a maximum bound for this value
- which cannot be exceeded.)
-
- VVIISSUUAALL If the value of this variable ends in eemmaaccss, ggmmaaccss, or vvii,
- then the corresponding option (see ``Special commands''
- below) will be turned on.
-
- The shell gives default values to PPAATTHH, PPSS11, PPSS22, MMAAIILLCCHHEECCKK, TTMMOOUUTT and
- IIFFSS, while HHOOMMEE, SSHHEELLLL, EENNVV, and MMAAIILL are not set at all by the shell
- (although HHOOMMEE, MMAAIILL, and SSHHEELLLL are set by llooggiinn(M)).
-
- _B_l_a_n_k _i_n_t_e_r_p_r_e_t_a_t_i_o_n
-
- After parameter and command substitution, the results of substitutions
- are scanned for field separator characters (those found in IIFFSS) and split
- into distinct arguments where such characters are found.
-
- Explicit null arguments ("""" or '''') are retained. Implicit null arguments
- (those resulting from parameters that have no values) are removed.
-
- _F_i_l_e _n_a_m_e _g_e_n_e_r_a_t_i_o_n
-
- Following substitution, each command word is scanned for the characters
- **, ??, and [[ unless the --ff option has been set. If one of these charac-
- ters appears then the word is regarded as a pattern. The word is
- replaced with lexicographically sorted file names that match the pattern.
- If no file name is found that matches the pattern, then the word is left
- unchanged. When a pattern is used for file name generation, the charac-
- ter ``.'' at the start of a file name or immediately following a ``/'',
- as well as the character ``/'' itself, must be matched explicitly. In
- other instances of pattern matching the ``/'' and ``.'' are not treated
- specially.
-
- * Matches any string, including the null string.
-
- ? Matches any single character.
-
- [[...]] Matches any one of the enclosed characters. A pair of characters
- separated by ``-'' matches any character lexically between the
- pair, inclusive. If the first character following the opening "[ "
- is a "! " then any character not enclosed is matched. A ``-'' can
- be included in the character set by putting it as the first or last
- character.
- A _pp_aa_tt_tt_ee_rr_nn_--_ll_ii_ss_tt is a list of one or more patterns separated from each
- other with a ``|''. Composite patterns can be formed with one or more of
- the following:
-
- ??((_pp_aa_tt_tt_ee_rr_nn_--_ll_ii_ss_tt)) Optionally matches any one of the given patterns.
-
- **((_pp_aa_tt_tt_ee_rr_nn_--_ll_ii_ss_tt)) Matches zero or more occurrences of the given patterns.
-
- ++((_pp_aa_tt_tt_ee_rr_nn_--_ll_ii_ss_tt)) Matches one or more occurrences of the given patterns.
-
- @@((_pp_aa_tt_tt_ee_rr_nn_--_ll_ii_ss_tt)) Matches exactly one of the given patterns.
-
- !!((_pp_aa_tt_tt_ee_rr_nn_--_ll_ii_ss_tt)) Matches anything, except one of the given patterns.
-
- _Q_u_o_t_i_n_g
-
- Each of the specified metacharacters (See ``Definitions'' above) has a
- special meaning to the shell and causes termination of a word unless
- quoted. A character may be quoted (that is, made to stand for itself) by
- preceding it with a backslash (\). The pair ``\<Enter>'' is ignored.
- All characters enclosed between a pair of single quote marks ('' '') are
- quoted. A single quote cannot appear within single quotes. Inside dou-
- ble quote marks (""), parameter and command substitution occur and ``\''
- quotes the characters \, ', " and $. The meaning of $$** and $$@@ is identi-
- cal when not quoted or when used as a parameter assignment value or as a
- file name. However, when used as a command argument, $$** is equivalent to
- "$$11_dd$$22_dd......", where _dd is the first character of the IIFFSS parameter, whereas
- $$@@ is equivalent to "$1" "$2".... Inside grave quote marks (` `) \
- quotes the characters \, `, and $. If the grave quotes occur within dou-
- ble quotes then \ also quotes the character ".
-
- The special meaning of reserved words or aliases can be removed by quot-
- ing any character of the reserved word. The recognition of function
- names or special command names listed below cannot be altered by quoting
- them.
-
- _A_r_i_t_h_m_e_t_i_c _e_v_a_l_u_a_t_i_o_n
-
- An ability to perform integer arithmetic is provided with the special
- command lleett. Evaluations are performed using long arithmetic. Constants
- are of the form [_bb_aa_ss_ee##]_nn where _bb_aa_ss_ee is a decimal number between two and
- thirty-six representing the arithmetic base and _nn is a number in that
- base. If _bb_aa_ss_ee is omitted then base 10 is used.
-
- An arithmetic expression uses the syntax, precedence, and associativity
- of expression of the C language. All the integral operators, other than
- ++++, ----, ??::, and comma (,) are supported. Named parameters can be refer-
- enced by name within an arithmetic expression without using the parameter
- substitution syntax. When a named parameter is referenced, its value is
- evaluated as an arithmetic expression.
-
- An internal integer representation of a named parameter can be specified
- with the --ii option of the ttyyppeesseett special command. Arithmetic evaluation
- is performed on the value of each assignment to a named parameter with
- the --ii attribute. If you do not specify an arithmetic base, the first
- assignment to the parameter determines the arithmetic base. This base is
- used when parameter substitution occurs.
-
- Since many of the arithmetic operators require quoting, an alternative
- form of the lleett command is provided. For any command which begins with a
- ((((, all the characters until a matching )))) are treated as a quoted
- expression. More precisely, ((((...)))) is equivalent to lleett ""..."".
-
- _P_r_o_m_p_t_i_n_g
-
- When used interactively, the shell prompts with the value of PPSS11 before
- reading a command. If at any time a new-line is typed and further input
- is needed to complete a command, then the secondary prompt (that is, the
- value of PPSS22) is issued.
-
- _C_o_n_d_i_t_i_o_n_a_l _e_x_p_r_e_s_s_i_o_n_s
-
- A conditional expression is used with the [[[[ compound command to test
- attributes of files and to compare strings. Word splitting and file name
- generation are not performed on the words between [[[[ and ]]]]. Each
- expression can be constructed from one or more of the following unary or
- binary expressions:
-
- --aa _ff_ii_ll_ee True, if _ff_ii_ll_ee exists.
-
- --bb _ff_ii_ll_ee True, if _ff_ii_ll_ee exists and is a block special file.
-
- --cc _ff_ii_ll_ee True, if _ff_ii_ll_ee exists and is a character special file.
-
- --dd _ff_ii_ll_ee True, if _ff_ii_ll_ee exists and is a directory.
-
- --ff _ff_ii_ll_ee True, if _ff_ii_ll_ee exists and is an ordinary file.
-
- --gg _ff_ii_ll_ee True, if _ff_ii_ll_ee exists and is has its sseettggiidd bit set.
-
- --kk _ff_ii_ll_ee True, if _ff_ii_ll_ee exists and is has its ssttiicckkyy bit set.
-
- --nn _ss_tt_rr_ii_nn_gg True, if length of _ss_tt_rr_ii_nn_gg is non-zero.
-
- --oo _oo_pp_tt_ii_oo_nn True, if option named _oo_pp_tt_ii_oo_nn is on.
-
- --pp _ff_ii_ll_ee True, if _ff_ii_ll_ee exists and is a fifo special file or a
- pipe.
-
- --rr _ff_ii_ll_ee True, if _ff_ii_ll_ee exists and is readable by current process.
-
- --ss _ff_ii_ll_ee True, if _ff_ii_ll_ee exists and has size greater than zero.
-
- --tt _ff_ii_ll_dd_ee_ss True, if file descriptor number _ff_ii_ll_dd_ee_ss is open and asso-
- ciated with a terminal device.
-
- --uu _ff_ii_ll_ee True, if _ff_ii_ll_ee exists and is has its sseettuuiidd bit set.
-
- --ww _ff_ii_ll_ee True, if _ff_ii_ll_ee exists and is writable by current process.
-
- --xx _ff_ii_ll_ee True, if _ff_ii_ll_ee exists and is executable by current pro-
- cess. If _ff_ii_ll_ee exists and is a directory, then the
- current process has permission to search in the direc-
- tory.
-
- --zz _ss_tt_rr_ii_nn_gg True, if length of _ss_tt_rr_ii_nn_gg is zero.
-
- --LL _ff_ii_ll_ee True, if _ff_ii_ll_ee exists and is a symbolic link.
-
- --OO _ff_ii_ll_ee True, if _ff_ii_ll_ee exists and is owned by the effective user
- id of this process.
-
- --GG _ff_ii_ll_ee True, if _ff_ii_ll_ee exists and its group matches the effective
- group id of this process.
-
- _ff_ii_ll_ee_11 --nntt _ff_ii_ll_ee_22 True, if _ff_ii_ll_ee_11 exists and is newer than _ff_ii_ll_ee_22.
-
- _ff_ii_ll_ee_11 --oott _ff_ii_ll_ee_22 True, if _ff_ii_ll_ee_11 exists and is older than _ff_ii_ll_ee_22.
-
- _ff_ii_ll_ee_11 --eeff _ff_ii_ll_ee_22 True, if _ff_ii_ll_ee_11 and _ff_ii_ll_ee_22 exist and refer to the same
- file.
-
- _ss_tt_rr_ii_nn_gg == _pp_aa_tt_tt_ee_rr_nn
- True, if _ss_tt_rr_ii_nn_gg matches _pp_aa_tt_tt_ee_rr_nn.
-
- _ss_tt_rr_ii_nn_gg !!== _pp_aa_tt_tt_ee_rr_nn
- True, if _ss_tt_rr_ii_nn_gg does not match _pp_aa_tt_tt_ee_rr_nn.
-
- _ss_tt_rr_ii_nn_gg_11 << _ss_tt_rr_ii_nn_gg_22
- True, if _ss_tt_rr_ii_nn_gg_11 comes before _ss_tt_rr_ii_nn_gg_22 based on ASCII
- value of their characters.
-
- _ss_tt_rr_ii_nn_gg_11 >> _ss_tt_rr_ii_nn_gg_22
- True, if _ss_tt_rr_ii_nn_gg_11 comes after _ss_tt_rr_ii_nn_gg_22 based on ASCII value
- of their characters.
-
- _ee_xx_pp_11 --eeqq _ee_xx_pp_22 True, if _ee_xx_pp_11 is equal to _ee_xx_pp_22.
-
- _ee_xx_pp_11 --nnee _ee_xx_pp_22 True, if _ee_xx_pp_11 is not equal to _ee_xx_pp_22.
-
- _ee_xx_pp_11 --lltt _ee_xx_pp_22 True, if _ee_xx_pp_11 is less than _ee_xx_pp_22.
-
- _ee_xx_pp_11 --ggtt _ee_xx_pp_22 True, if _ee_xx_pp_11 is greater than _ee_xx_pp_22.
-
- _ee_xx_pp_11 --llee _ee_xx_pp_22 True, if _ee_xx_pp_11 is less than or equal to _ee_xx_pp_22.
-
- _ee_xx_pp_11 --ggee _ee_xx_pp_22 True, if _ee_xx_pp_11 is greater than or equal to _ee_xx_pp_22.
-
- In each of the above expressions, if _ff_ii_ll_ee is of the form /_d_e_v/_f_d/_nn, where
- _nn is an integer, then the test is applied to the open file whose descrip-
- tor number is _nn.
-
- A compound expression can be constructed from these primitives by using
- any of the following, listed in decreasing order of precedence.
-
- ((_ee_xx_pp_rr_ee_ss_ss_ii_oo_nn)) True, if _ee_xx_pp_rr_ee_ss_ss_ii_oo_nn is true. Used to group expressions.
-
- !! _ee_xx_pp_rr_ee_ss_ss_ii_oo_nn True if _ee_xx_pp_rr_ee_ss_ss_ii_oo_nn is false.
-
- _ee_xx_pp_rr_ee_ss_ss_ii_oo_nn_11 &&&& _ee_xx_pp_rr_ee_ss_ss_ii_oo_nn_22
- True, if _ee_xx_pp_rr_ee_ss_ss_ii_oo_nn_11 and _ee_xx_pp_rr_ee_ss_ss_ii_oo_nn_22 are both true.
-
- _ee_xx_pp_rr_ee_ss_ss_ii_oo_nn_11 |||| _ee_xx_pp_rr_ee_ss_ss_ii_oo_nn_22
- True, if either _ee_xx_pp_rr_ee_ss_ss_ii_oo_nn_11 or _ee_xx_pp_rr_ee_ss_ss_ii_oo_nn_22 is true.
-
- _S_p_e_l_l_i_n_g _c_h_e_c_k_e_r
-
- By default, the shell checks spelling whenever you use ccdd to change
- directories. For example, if you change to a different directory using
- ccdd and misspell the directory name, the shell responds with an
- alternative spelling of an existing directory. Enter ``y'' and press
- <Return> (or just press <Return>) to change to the offered directory. If
- the offered spelling is incorrect, enter ``n'', then retype the command
- line. In this example the user input is boldfaced:
-
- # ccdd //uussrr//ssppooll//uuuuccpp
- /usr/spool/uucp? yy
- ok
-
- The spell check feature is controlled by the CCDDSSPPEELLLL environment vari-
- able. The default value of CCDDSSPPEELLLL is set to the string ``cdspell'' when-
- ever a kksshh session is run. A user can change it to any value, including
- the null string, but the value is immaterial: if CCDDSSPPEELLLL is set to any
- value, the spell check feature is engaged.
-
- To disable the spelling checker, enter the following at the kksshh prompt :
-
- uunnsseett CCDDSSPPEELLLL
-
- When the user does a sseett at the kksshh prompt, CCDDSSPPEELLLL is not listed if the
- uunnsseett was successful.
-
- _I_n_p_u_t/_o_u_t_p_u_t
-
- Before a command is executed, its input and output may be redirected
- using a special notation interpreted by the shell. The following may
- appear anywhere in a simple-command or may precede or follow a command,
- and are not passed on to the invoked command. Command and parameter sub-
- stitution occurs before _ww_oo_rr_dd or _dd_ii_gg_ii_tt is used, except as noted below.
- File name generation occurs only if the pattern matches a single file and
- blank interpretation is not performed.
-
- <<_ww_oo_rr_dd Use file _ww_oo_rr_dd as standard input (file descriptor 0).
-
- >>_ww_oo_rr_dd Use file _ww_oo_rr_dd as standard output (file descriptor 1). If
- the file does not exist then it is created. If the file
- exists, and the nnoocclloobbbbeerr option is on, this causes an
- error; otherwise, it is truncated to zero length.
-
- >>||_ww_oo_rr_dd Same as >>, except that it overrides the nnoocclloobbbbeerr option.
-
- >>>>_ww_oo_rr_dd Use file _ww_oo_rr_dd as standard output. If the file exists then
- output is appended to it (by first seeking to the end-of-
- file); otherwise, the file is created.
-
- <<>>_ww_oo_rr_dd Open file _ww_oo_rr_dd for reading and writing as standard input.
-
- <<<<[--]_ww_oo_rr_dd The shell input is read up to a line that is the same as
- _ww_oo_rr_dd, or to an end-of-file. No parameter substitution,
- command substitution or file name generation is performed
- on _ww_oo_rr_dd. The resulting document, called a _h_e_r_e-_d_o_c_u_m_e_n_t,
- becomes the standard input. If any character of _ww_oo_rr_dd is
- quoted, then no interpretation is placed upon the charac-
- ters of the document; otherwise, parameter and command sub-
- stitution occurs, \\nneeww--lliinnee is ignored, and ``\'' must be
- used to quote the characters \, $, `, and the first charac-
- ter of _ww_oo_rr_dd. If ``-'' is appended to <<<<, then all leading
- tabs are stripped from _ww_oo_rr_dd and from the document.
-
- <<&&_dd_ii_gg_ii_tt The standard input is duplicated from file descriptor _dd_ii_gg_ii_tt
- (see dduupp(S)). Similarly for the standard output using
- >>&&_dd_ii_gg_ii_tt.
-
- <<&&-- The standard input is closed. Similarly for the standard
- output using >>&&--.
-
- <<&&pp The input from the co-process is moved to standard input.
-
- >>&&pp The output to the co-process is moved to standard output.
-
- If one of the above is preceded by a digit, then the file descriptor num-
- ber referred to is that specified by the digit (instead of the default 0
- or 1). For example:
-
- ... 2>&1
-
- means file descriptor 2 is to be opened for writing as a duplicate of
- file descriptor 1.
-
- File descriptor 0 is standard input; 1 is standard output; 2 is standard
- error.
-
- The order in which redirections are specified is significant. The shell
- evaluates each redirection in terms of the file descriptor, file associa-
- tion at the time of evaluation. For example:
-
- ... 1>_f_n_a_m_e 2>&1
-
- first associates file descriptor 1 with file _f_n_a_m_e. It then associates
- file descriptor 2 with the file associated with file descriptor 1 (that
- is, _f_n_a_m_e). If the order of redirections were reversed, file descriptor
- 2 would be associated with the terminal (assuming this was the initial
- state of file descriptor 1) and then file descriptor 1 would be associ-
- ated with file _f_n_a_m_e.
-
- If a command is followed by ``&'' and job control is not active, then the
- default standard input for the command is the empty file /_d_e_v/_n_u_l_l. Oth-
- erwise, the environment for the execution of a command contains the file
- descriptors of the invoking shell as modified by input/output specifica-
- tions.
-
- _E_n_v_i_r_o_n_m_e_n_t
-
- The environment (see eennvviirroonn(M)) is a list of name-value pairs that is
- passed to an executing process in the same way as a normal argument list.
- The names must be identifiers and the values are character strings. The
- shell interacts with the environment in several ways. On invocation, the
- shell scans the environment and creates a parameter for each name found,
- giving it the corresponding value and marking it _e_x_p_o_r_t. Executed com-
- mands inherit the environment. If the user modifies the values of these
- parameters or creates new ones, using the eexxppoorrtt or ttyyppeesseett--xx commands
- they become part of the environment. The environment seen by any exe-
- cuted command is thus composed of any name-value pairs originally inher-
- ited by the shell, whose values may be modified by the current shell,
- plus any additions which must be noted in eexxppoorrtt or ttyyppeesseett--xx commands.
-
- The environment for any simple-command or function may be augmented by
- prefixing it with one or more parameter assignments. A parameter assign-
- ment argument is a word of the form _ii_dd_ee_nn_tt_ii_ff_ii_ee_rr_==_vv_aa_ll_uu_ee. Thus:
-
- TTEERRMM=wwyy6600 _cc_mm_dd _aa_rr_gg_ss
-
- and
-
- (eexxppoorrtt TTEERRMM; TTEERRMM=wwyy6600; _cc_mm_dd _aa_rr_gg_ss)
-
- are equivalent (as far as the above execution of _cc_mm_dd is concerned, except
- for commands listed with {1} or {2} in the ``Special commands'' section).
-
- If the --kk flag is set, all parameter assignment arguments are placed in
- the environment, even if they occur after the command name. The follow-
- ing first prints a=b c and then c:
-
- echo a=b c
- set -k
- echo a=b c
-
- This feature is intended for use with scripts written for early versions
- of the shell and its use in new scripts is strongly discouraged. It is
- likely to disappear in the future.
-
- _F_u_n_c_t_i_o_n_s
-
- The ffuunnccttiioonn reserved word, described in the ``Commands'' section above,
- is used to define shell functions. Shell functions are read in and
- stored internally. Alias names are resolved when the function is read.
- Functions are executed like commands with the arguments passed as posi-
- tional parameters. (See ``Execution'' below.)
-
- Functions execute in the same process as the caller and share all files
- and the present working directory with the caller. Traps caught by the
- caller are reset to their default action inside the function. A trap
- condition that is not caught or ignored by the function causes the func-
- tion to terminate and the condition to be passed on to the caller. A
- trap on EEXXIITT set inside a function is executed after the function com-
- pletes in the environment of the caller. Ordinarily, variables are
- shared between the calling program and the function. However, the
- ttyyppeesseett special command used within a function defines local variables
- whose scope includes the current function and all functions it calls.
-
- The special command rreettuurrnn is used to return from function calls. Errors
- within functions return control to the caller.
-
- Function identifiers can be listed with the --ff or ++ff option of the
- ttyyppeesseett special command. The text of functions will also be listed with
- --ff. Function can be undefined with the --ff option of the uunnsseett special
- command.
-
- Ordinarily, functions are unset when the shell executes a shell script.
- The --xxff option of the ttyyppeesseett command allows a function to be exported to
- scripts that are executed without a separate invocation of the shell.
- Functions that need to be defined across separate invocations of the
- shell should be specified in the EENNVV file with the --xxff option of ttyyppeesseett.
-
- _J_o_b_s
-
- If the mmoonniittoorr option of the sseett command is turned on, an interactive
- shell associates a ``job'' with each pipeline. It keeps a table of
- current jobs, printed by the jjoobbss command, and assigns them small integer
- numbers. When a job is started asynchronously with ``&'', the shell
- prints a line which looks like:
-
- [1] 1234
-
- indicating that the job which was started asynchronously was job number 1
- and had one (top-level) process, whose process id was 1234.
-
- If you are running a job and wish to do something else you may hit the
- key ^^ZZ (<Ctrl>zz) which sends a SSTTOOPP signal to the current job. (This is
- known as the suspend character, and is ^Z by default; this can be changed
- in the ssttttyy ssuusspp line in a user's ._p_r_o_f_i_l_e file.) The shell will then
- normally indicate that the job has been `Stopped', and print another
- prompt. You can then manipulate the state of this job, putting it in the
- background with the bbgg command, or run some other commands and then even-
- tually bring the job back into the foreground with the foreground command
- ffgg. A ^^ZZ takes effect immediately and is like an interrupt in that pend-
- ing output and unread input are discarded when it is typed.
-
- A job being run in the background will stop if it tries to read from the
- terminal. Background jobs are normally allowed to produce output, but
- this can be disabled by giving the command ``stty tostop''. If you set
- this tty option, then background jobs will stop when they try to produce
- output like they do when they try to read input.
-
- There are several ways to refer to jobs in the shell. A job can be
- referred to by the process id of any process of the job or by one of the
- following:
-
- %%_nn_uu_mm_bb_ee_rr The job with the given number.
-
- %%_ss_tt_rr_ii_nn_gg Any job whose command line begins with _ss_tt_rr_ii_nn_gg.
-
- %%??_ss_tt_rr_ii_nn_gg Any job whose command line contains _ss_tt_rr_ii_nn_gg.
-
- %%%% Current job.
-
- %%++ Equivalent to %%%%.
-
- %%-- Previous job.
-
- The shell learns immediately whenever a process changes state. It nor-
- mally informs you whenever a job becomes blocked so that no further pro-
- gress is possible, but only just before it prints a prompt. This is done
- so that it does not otherwise disturb your work.
-
- When the monitor mode is on, each background job that completes triggers
- any trap set for CCHHLLDD.
-
- When you try to leave the shell while jobs are running or stopped, you
- will be warned that ``You have stopped(running) jobs.'' You may use the
- jjoobbss command to see what they are. If you do this or immediately try to
- exit again, the shell will not warn you a second time, and the stopped
- jobs will be terminated.
-
- _S_i_g_n_a_l_s
-
- The IINNTT and QQUUIITT signals for an invoked command are ignored if the com-
- mand is followed by ``&'' and the job mmoonniittoorr option is not active. Oth-
- erwise, signals have the values inherited by the shell from its parent
- (but see also the ttrraapp command below).
-
- _E_x_e_c_u_t_i_o_n
-
- Each time a command is executed, the above substitutions are carried out.
- If the command name matches one of the ``Special Commands'' listed below,
- it is executed within the current shell process. Next, the command name
- is checked to see if it matches one of the user defined functions. If it
- does, the positional parameters are saved and then reset to the arguments
- of the function call. When the function completes or issues a return,
- the positional parameter list is restored and any trap set on EEXXIITT within
- the function is executed. The value of a function is the value of the
- last command executed. A function is also executed in the current shell
- process. If a command name is not a special command or a user defined
- function, a process is created and an attempt is made to execute the com-
- mand via eexxeecc(S).
-
- The shell parameter PPAATTHH defines the search path for the directory con-
- taining the command. Alternative directory names are separated by a
- colon (:). The default path is /_b_i_n:/_u_s_r/_b_i_n: (specifying /_b_i_n,
- /_u_s_r/_b_i_n, and the current directory in that order). The current direc-
- tory can be specified by two or more adjacent colons, or by a colon at
- the beginning or end of the path list. If the command name contains a
- ``/'' then the search path is not used. Otherwise, each directory in the
- path is searched for an executable file. If the file has execute permis-
- sion but is not a directory or an _a._o_u_t file, it is assumed to be a file
- containing shell commands. A sub-shell is spawned to read it. All non-
- exported aliases, functions, and named parameters are removed in this
- case. If the shell command file doesn't have read permission, or if the
- sseettuuiidd and/or sseettggiidd bits are set on the file, then the shell executes an
- agent whose job it is to set up the permissions and execute the shell
- with the shell command file passed down as an open file. A parenthesized
- command is executed in a sub-shell without removing non-exported quanti-
- ties.
-
- _C_o_m_m_a_n_d _r_e-_e_n_t_r_y
-
- The text of the last HHIISSTTSSIIZZEE (default 128) commands entered from a ter-
- minal device is saved in a history file. The file $$HHOOMMEE/._s_h__h_i_s_t_o_r_y is
- used if the HHIISSTTFFIILLEE variable is not set or is not writable. A shell can
- access the commands of all interactive shells which use the same named
- HHIISSTTFFIILLEE. The special command ffcc is used to list or edit a portion of
- this file. The portion of the file to be edited or listed can be
- selected by number or by giving the first character or characters of the
- command. A single command or range of commands can be specified. If you
- do not specify an editor program as an argument to ffcc then the value of
- the parameter FFCCEEDDIITT is used. If FFCCEEDDIITT is not defined then /_b_i_n/_e_d is
- used. The edited command(s) is printed and re-executed upon leaving the
- editor. The editor name ``-'' is used to skip the editing phase and to
- re-execute the command. In this case a substitution parameter of the
- form _oo_ll_dd=_nn_ee_ww can be used to modify the command before execution. For
- example, if rr is aliased to ''ffcc --ee --'' then typing rr bbaadd==ggoooodd cc will re-
- execute the most recent command which starts with the letter ``c'',
- replacing the first occurrence of the string bbaadd with the string ggoooodd.
-
- _I_n-_l_i_n_e _e_d_i_t_i_n_g _o_p_t_i_o_n_s
-
- Normally, each command line entered from a terminal device is simply
- typed followed by a new-line (RREETTUURRNN or LLIINNEE FFEEEEDD). If the eemmaaccss, ggmmaaccss,
- or vvii option is active, the user can edit the command line. To be in one
- of these edit modes sseett the corresponding option. An editing option is
- automatically selected each time the VVIISSUUAALL or EEDDIITTOORR variable is
- assigned a value ending in either of these option names.
-
- The editing features require that the user's terminal accept RREETTUURRNN as
- carriage return without line feed and that a space ( ) must overwrite the
- current character on the screen. ADM terminal users should set the
- ``space - advance'' switch to `space'. Hewlett-Packard series 2621 ter-
- minal users should set the straps to `bcGHxZ etX'.
-
- The editing modes implement a concept where the user is looking through a
- window at the current line. The window width is the value of CCOOLLUUMMNNSS if
- it is defined, otherwise 80. If the line is longer than the window width
- minus two, a mark is displayed at the end of the window to notify the
- user. As the cursor moves and reaches the window boundaries the window
- will be centered about the cursor. The mark is a ``>'' (<, *) if the
- line extends on the right (left, both) side(s) of the window.
-
- The search commands in each edit mode provide access to the history file.
- Only strings are matched, not patterns, although a leading ``^'' in the
- string restricts the match to begin at the first character in the line.
-
- _E_m_a_c_s _e_d_i_t_i_n_g _m_o_d_e
-
- This mode is entered by enabling either the eemmaaccss or ggmmaaccss option. The
- only difference between these two modes is the way they handle ^^TT. To
- edit, the user moves the cursor to the point needing correction and then
- inserts or deletes characters or words as needed. All the editing com-
- mands are control characters or escape sequences. The notation for con-
- trol characters is caret (^^) followed by the character. For example, ^^FF
- is the notation for control FF. This is entered by depressing `f' while
- holding down the <Ctrl> (control) key. The <Shift> key is _n_o_t depressed.
- (The notation ^^?? indicates the <Del> (delete) key.)
-
- The notation for escape sequences is MM-- followed by a character. For
- example, MM--ff (pronounced Meta f) is entered by depressing <Esc> (ASCII
- 003333) followed by `f'. (MM--FF would be the notation for <Esc> followed by
- <Shift> (capital) `F'.)
-
- All edit commands operate from any place on the line (not just at the
- beginning). Neither the <Return> nor the <Line Feed> key is entered
- after edit commands except when noted.
-
- ^^FF Move cursor forward (right) one character.
-
- MM--ff Move cursor forward one word. (The emacs editor's idea of a
- word is a string of characters consisting of only letters,
- digits and underscores.)
-
- ^^BB Move cursor backward (left) one character.
-
- MM--bb Move cursor backward one word.
-
- ^^AA Move cursor to start of line.
-
- ^^EE Move cursor to end of line.
-
- ^^]]_cc_hh_aa_rr Move cursor forward to character _cc_hh_aa_rr on current line.
-
- MM--^^]]_cc_hh_aa_rr Move cursor back to character _cc_hh_aa_rr on current line.
-
- ^^XX^^XX Interchange the cursor and mark.
-
- eerraassee (User defined erase character as defined by the ssttttyy(C) com-
- mand, usually ^^HH or ##.) Delete previous character.
-
- ^^DD Delete current character.
-
- MM--dd Delete current word.
-
- MM--^^HH (Meta-backspace) Delete previous word.
-
- MM--hh Delete previous word.
-
- MM--^^?? (Meta-DEL) Delete previous word (if your interrupt character is
- ^^?? (DEL, the default) then this command will not work).
-
- ^^TT Transpose current character with next character in eemmaaccss mode.
- Transpose two previous characters in ggmmaaccss mode.
-
- ^^CC Capitalize current character.
-
- MM--cc Capitalize current word.
-
- MM--ll Change the current word to lower case.
-
- ^^KK Delete from the cursor to the end of the line. If preceded by
- a numerical parameter whose value is less than the current cur-
- sor position, then delete from given position up to the cursor.
- If preceded by a numerical parameter whose value is greater
- than the current cursor position, then delete from cursor up to
- given cursor position.
-
- ^^WW Kill from the cursor to the mark.
-
- MM--pp Push the region from the cursor to the mark on the stack.
-
- kkiillll (User defined kill character as defined by the ssttttyy command,
- usually ^^UU or @@.) Kill the entire current line. If two kkiillll
- characters are entered in succession, all kill characters from
- then on cause a line feed (useful when using paper terminals).
-
- ^^YY Restore last item removed from line. (Yank item back to the
- line.)
-
- ^^LL Line feed and print current line.
-
- ^^@@ (Null character) Set mark.
-
- MM--_ss_pp_aa_cc_ee (Meta space) Set mark.
-
- ^^JJ (New line) Execute the current line.
-
- ^^MM (Return) Execute the current line.
-
- eeooff End-of-file character, normally ^^DD, is processed as an End-of-
- file only if the current line is null.
-
- ^^PP Fetch previous command. Each time ^^PP is entered the previous
- command back in time is accessed. Moves back one line when not
- on the first line of a multi-line command.
-
- MM--<< Fetch the least recent (oldest) history line.
-
- MM-->> Fetch the most recent (youngest) history line.
-
- ^^NN Fetch next command line. Each time ^^NN is entered the next com-
- mand line forward in time is accessed.
-
- ^^RR_ss_tt_rr_ii_nn_gg Reverse search history for a previous command line containing
- _ss_tt_rr_ii_nn_gg. If a parameter of zero is given, the search is for-
- ward. _ss_tt_rr_ii_nn_gg is terminated by a RREETTUURRNN or NNEEWW LLIINNEE. If _ss_tt_rr_ii_nn_gg
- is preceded by a ``^'', the matched line must begin with
- _ss_tt_rr_ii_nn_gg. If _ss_tt_rr_ii_nn_gg is omitted, then the next command line con-
- taining the most recent _ss_tt_rr_ii_nn_gg is accessed. In this case a
- parameter of zero reverses the direction of the search.
-
- ^^OO Operate - Execute the current line and fetch the next line
- relative to current line from the history file.
-
- MM--_dd_ii_gg_ii_tt_ss (Escape) Define numeric parameter, the digits are taken as a
- parameter to the next command. The commands that accept a
- parameter are ^^FF, ^^BB, eerraassee, ^^CC, ^^DD, ^^KK, ^^RR, ^^PP, ^^NN, ^^]], MM--..,
- MM--^^]], MM--__, MM--bb, MM--cc, MM--dd, MM--ff, MM--hh, MM--ll and MM--^^HH.
-
- MM--_ll_ee_tt_tt_ee_rr Soft-key - Your alias list is searched for an alias by the name
- ___ll_ee_tt_tt_ee_rr and if an alias of this name is defined, its value will
- be inserted on the input queue. The _ll_ee_tt_tt_ee_rr must not be one of
- the above meta-functions.
-
- MM--]]_ll_ee_tt_tt_ee_rr Soft-key - Your alias list is searched for an alias by the name
- _____ll_ee_tt_tt_ee_rr (two underscores precede _ll_ee_tt_tt_ee_rr) and if an alias of
- this name is defined, its value will be inserted on the input
- queue. This can be used to program function keys on many ter-
- minals.
-
- MM--.. The last word of the previous command is inserted on the line.
- If preceded by a numeric parameter, the value of this parameter
- determines which word to insert rather than the last word.
-
- MM--__ Same as MM--...
-
- MM--** Attempt file name generation on the current word. An asterisk
- is appended if the word doesn't match any file or contain any
- special pattern characters.
-
- MM--EESSCC File name completion. The current word is treated as a root to
- which an asterisk is appended. A search is conducted for files
- matching the current word. The first match found then replaces
- the current word. Subsequent matches are obtained by repeating
- the MM--EESSCC keystroke. If the match is both unique and a direc-
- tory, a ``/'' is appended to it. If it is unique but not a
- directory, a space is appended to it.
-
- MM--== List files matching current word pattern if an asterisk were
- appended.
-
- ^^UU Multiply parameter of next command by 4.
-
- \\ Escape next character. Editing characters, the user's eerraassee,
- kkiillll and iinntteerrrruupptt (normally ^^??) characters may be entered in a
- command line or in a search string if preceded by a ``\''. The
- ``\'' removes the next character's editing features (if any).
-
- ^^VV Display version of the shell.
-
- MM--## Insert a ``#'' at the beginning of the line and execute it.
- This causes a comment to be inserted in the history file.
-
- _V_i _e_d_i_t_i_n_g _m_o_d_e
-
- There are two typing modes. Initially, when you enter a command you are
- in the iinnppuutt mode. To edit, the user enters ccoonnttrrooll mode by typing <Esc>
- (ASCII 033) and moves the cursor to the point needing correction and then
- inserts or deletes characters or words as needed. Most control commands
- accept an optional repeat count prior to the command.
-
- When in vvii mode on most systems, canonical processing is initially
- enabled and the command will be echoed again if the speed is 1200 baud or
- greater and it contains any control characters or less than one second
- has elapsed since the prompt was printed. The <Esc> character terminates
- canonical processing for the remainder of the command and the user can
- then modify the command line. This scheme has the advantages of canoni-
- cal processing with the type-ahead echoing of raw mode.
-
- If the option vviirraaww is also set, the terminal will always have canonical
- processing disabled. This may be helpful for certain terminals.
-
- _I_n_p_u_t _e_d_i_t _c_o_m_m_a_n_d_s
-
- By default the editor is in input mode.
-
- eerraassee (User defined erase character as defined by the ssttttyy command,
- usually ^^HH or ##.) Delete previous character.
-
- ^^WW Delete the previous blank separated word.
-
- ^^DD Terminate the shell.
-
- ^^VV Escape next character. Editing characters, the user's erase or
- kill characters may be entered in a command line or in a search
- string if preceded by a ^^VV. The ^^VV removes the next
- character's editing features (if any).
-
- \\ Escape the next eerraassee or kkiillll character.
-
- _M_o_t_i_o_n _e_d_i_t _c_o_m_m_a_n_d_s
-
- These commands will move the cursor.
-
- [_cc_oo_uu_nn_tt]ll Cursor forward (right) one character.
-
- [_cc_oo_uu_nn_tt]ww Cursor forward one alpha-numeric word.
-
- [_cc_oo_uu_nn_tt]WW Cursor to the beginning of the next word that follows a blank.
-
- [_cc_oo_uu_nn_tt]ee Cursor to end of word.
-
- [_cc_oo_uu_nn_tt]EE Cursor to end of the current blank delimited word.
-
- [_cc_oo_uu_nn_tt]hh Cursor backward (left) one character.
- [_cc_oo_uu_nn_tt]bb Cursor backward one word.
-
- [_cc_oo_uu_nn_tt]BB Cursor to preceding blank separated word.
-
- [_cc_oo_uu_nn_tt]|| Cursor to column _cc_oo_uu_nn_tt.
-
- [_cc_oo_uu_nn_tt]ff_cc Find the next character _cc in the current line.
-
- [_cc_oo_uu_nn_tt]FF_cc Find the previous character _cc in the current line.
-
- [_cc_oo_uu_nn_tt]tt_cc Equivalent to ff followed by hh.
-
- [_cc_oo_uu_nn_tt]TT_cc Equivalent to FF followed by ll.
-
- [_cc_oo_uu_nn_tt];; Repeats _cc_oo_uu_nn_tt times, the last single character find command, ff,
- FF, tt, or TT.
-
- [_cc_oo_uu_nn_tt],, Reverses the last single character find command _cc_oo_uu_nn_tt times.
-
- 00 Cursor to start of line.
-
- ^^ Cursor to first non-blank character in line.
-
- $$ Cursor to end of line.
-
- _S_e_a_r_c_h _e_d_i_t _c_o_m_m_a_n_d_s
-
- These commands access your command history.
-
- [_cc_oo_uu_nn_tt]kk Fetch previous command. Each time kk is entered the previous
- command back in time is accessed.
-
- [_cc_oo_uu_nn_tt]-- Equivalent to kk.
-
- [_cc_oo_uu_nn_tt]jj Fetch next command. Each time jj is entered the next command
- forward in time is accessed.
-
- [_cc_oo_uu_nn_tt]++ Equivalent to jj.
-
- [_cc_oo_uu_nn_tt]GG The command number _cc_oo_uu_nn_tt is fetched. The default is the least
- recent history command.
-
- //_ss_tt_rr_ii_nn_gg Search backward through history for a previous command contain-
- ing _ss_tt_rr_ii_nn_gg. _ss_tt_rr_ii_nn_gg is terminated by a RREETTUURRNN or NNEEWW LLIINNEE. If
- _ss_tt_rr_ii_nn_gg is preceded by a ``^'', the matched line must begin with
- _ss_tt_rr_ii_nn_gg. If _ss_tt_rr_ii_nn_gg is null the previous string will be used.
-
- ??_ss_tt_rr_ii_nn_gg Same as ``/'' except that search will be in the forward direc-
- tion.
-
- nn Search for next match of the last pattern to ``/'' or ``?''
- commands.
-
- NN Search for next match of the last pattern to ``/'' or ``?'',
- but in reverse direction. Search history for the _ss_tt_rr_ii_nn_gg
- entered by the previous ``/'' command.
-
- _T_e_x_t _m_o_d_i_f_i_c_a_t_i_o_n _e_d_i_t _c_o_m_m_a_n_d_s
-
- These commands will modify the line.
-
- aa Enter input mode and enter text after the current character.
-
- AA Append text to the end of the line. Equivalent to $$aa.
-
- [_cc_oo_uu_nn_tt]cc_mm_oo_tt_ii_oo_nn
- cc[_cc_oo_uu_nn_tt]_mm_oo_tt_ii_oo_nn
- Delete current character through the character that _mm_oo_tt_ii_oo_nn
- would move the cursor to and enter input mode. If _mm_oo_tt_ii_oo_nn is
- ``c'', the entire line will be deleted and input mode entered.
-
- CC Delete the current character through the end of line and enter
- input mode. Equivalent to cc$$.
-
- SS Equivalent to cccc.
-
- DD Delete the current character through the end of line.
- Equivalent to dd$$.
-
- [_cc_oo_uu_nn_tt]dd_mm_oo_tt_ii_oo_nn
- dd[_cc_oo_uu_nn_tt]_mm_oo_tt_ii_oo_nn
- Delete current character through the character that _mm_oo_tt_ii_oo_nn
- would move to. If _mm_oo_tt_ii_oo_nn is ``d'', the entire line will be
- deleted.
-
- ii Enter input mode and insert text before the current character.
-
- II Insert text before the beginning of the line. Equivalent to
- 00ii.
-
- [_cc_oo_uu_nn_tt]PP Place the previous text modification before the cursor.
-
- [_cc_oo_uu_nn_tt]pp Place the previous text modification after the cursor.
-
- RR Enter input mode and replace characters on the screen with
- characters you type overlay fashion.
-
- [_cc_oo_uu_nn_tt]rr_cc Replace the _cc_oo_uu_nn_tt character(s) starting at the current cursor
- position with _cc, and advance the cursor.
-
- [_cc_oo_uu_nn_tt]xx Delete current character.
-
- [_cc_oo_uu_nn_tt]XX Delete preceding character.
-
- [_cc_oo_uu_nn_tt].. Repeat the previous text modification command.
-
- [_cc_oo_uu_nn_tt]~~ Invert the case of the _cc_oo_uu_nn_tt character(s) starting at the
- current cursor position and advance the cursor.
-
- [_cc_oo_uu_nn_tt]__ Causes the _cc_oo_uu_nn_tt word of the previous command to be appended
- and input mode entered. The last word is used if _cc_oo_uu_nn_tt is
- omitted.
-
- ** Causes a ``*'' to be appended to the current word and file name
- generation attempted. If no match is found, it rings the bell.
- Otherwise, the word is replaced by the matching pattern and
- input mode is entered.
-
- \\ Filename completion. Replaces the current word with the long-
- est common prefix of all filenames matching the current word
- with an asterisk appended. If the match is unique, a ``/'' is
- appended if the file is a directory and a space is appended if
- the file is not a directory.
-
- _O_t_h_e_r _e_d_i_t _c_o_m_m_a_n_d_s
-
- MMiisscceellllaanneeoouuss ccoommmmaannddss.
-
- [_cc_oo_uu_nn_tt]yy_mm_oo_tt_ii_oo_nn
- yy[_cc_oo_uu_nn_tt]_mm_oo_tt_ii_oo_nn
- Yank current character through character that _mm_oo_tt_ii_oo_nn would move
- the cursor to and puts them into the delete buffer. The text
- and cursor are unchanged.
-
- YY Yanks from current position to end of line. Equivalent to yy$$.
-
- uu Undo the last text modifying command.
-
- UU Undo all the text modifying commands performed on the line.
-
- [_cc_oo_uu_nn_tt]vv Returns the command ffcc --ee $${{VVIISSUUAALL::--$${{EEDDIITTOORR::--vvii}}}} _cc_oo_uu_nn_tt in the
- input buffer. If _cc_oo_uu_nn_tt is omitted, then the current line is
- used.
-
- ^^LL Line feed and print current line. Has effect only in control
- mode.
-
- ^^JJ (New line) Execute the current line, regardless of mode.
-
- ^^MM (Return) Execute the current line, regardless of mode.
-
- ## Sends the line after inserting a ``#'' in front of the line.
- Useful for causing the current line to be inserted in the his-
- tory without being executed.
-
- == List the file names that match the current word if an asterisk
- were appended to it.
-
- @@_ll_ee_tt_tt_ee_rr Your alias list is searched for an alias by the name ___ll_ee_tt_tt_ee_rr
- and if an alias of this name is defined, its value will be
- inserted on the input queue for processing.
-
- _S_p_e_c_i_a_l _c_o_m_m_a_n_d_s
-
- The following simple-commands are executed in the shell process.
- Input/output redirection is permitted. Unless otherwise indicated, the
- output is written on file descriptor 1 and the exit status, when there is
- no syntax error, is zero. Commands that are preceded by {1} or {2} are
- treated specially in the following ways:
-
- 1. Parameter assignment lists preceding the command remain in effect
- when the command completes.
-
- 2. I/O redirections are processed after parameter assignments.
-
- 3. Errors cause a script that contains them to abort.
-
- 4. Words, following a command preceded by {2} that are in the format of
- a parameter assignment, are expanded with the same rules as a parame-
- ter assignment. This means that tilde substitution is performed
- after the ``='' sign and word splitting and file name generation are
- not performed.
-
- {1} :: [ _aa_rr_gg ... ]
- The command only expands parameters.
-
- {1} .. _ff_ii_ll_ee [ _aa_rr_gg ... ]
- Read the complete file then execute the commands. The syntax for
- this is dot-space-file followed by optional arguments. The commands
- are executed in the current shell environment. The search path
- specified by PPAATTHH is used to find the directory containing _ff_ii_ll_ee. If
- any arguments _aa_rr_gg are given, they become the positional parameters.
- Otherwise the positional parameters are unchanged. The exit status
- is the exit status of the last command executed.
-
- {2} aalliiaass [ --ttxx ] [ _nn_aa_mm_ee [ == _vv_aa_ll_uu_ee ] ] ...
- aalliiaass with no arguments prints the list of aliases in the form
- _nn_aa_mm_ee_==_vv_aa_ll_uu_ee on standard output. An alias is defined for each name
- whose value is given. A trailing space in value causes the next
- word to be checked for alias substitution. The --tt flag is used to
- set and list tracked aliases. The value of a tracked alias is the
- full pathname corresponding to the given name. The value becomes
- undefined when the value of PPAATTHH is reset but the aliases remained
- tracked. Without the --tt flag, for each name in the argument list
- for which no value is given, the name and value of the alias is
- printed. The --xx flag is used to set or print exported aliases. An
- exported alias is defined for scripts invoked by name. The exit
- status is non-zero if a name is given, but no value, for which no
- alias has been defined.
-
- bbgg [ _jj_oo_bb ... ]
- This command is only on systems that support job control. Puts each
- specified job into the background. The current job is put in the
- background if job is not specified. See ``Jobs'' for a description
- of the format of job.
-
- {1} bbrreeaakk [ _nn ]
- Exit from the enclosing ffoorr, wwhhiillee, uunnttiill, or sseelleecctt loop, if any.
- If _nn is specified then break _nn levels.
-
- {1} ccoonnttiinnuuee [ _nn ]
- Resume the next iteration of the enclosing ffoorr, wwhhiillee, uunnttiill, or
- sseelleecctt loop. If _nn is specified then resume at the _nn-th enclosing
- loop.
-
- ccdd [ --LLPP ] [ _aa_rr_gg ]
- ccdd [ --LLPP ] _oo_ll_dd _nn_ee_ww
- This command can be in either of two forms. In the first form it
- changes the current directory to _aa_rr_gg. If _aa_rr_gg is ``-'' the directory
- is changed to the previous directory. If no _aa_rr_gg is specified, the
- shell parameter HHOOMMEE is used as a default _aa_rr_gg. The parameter PPWWDD is
- set to the current directory. The shell parameter CCDDPPAATTHH defines
- the search path for the directory containing _aa_rr_gg. Alternative
- directory names are separated by a colon (::). The default path is
- <<nnuullll>> (specifying the current directory). Note that the current
- directory is specified by a null path name, which can appear immedi-
- ately after the equal sign or between the colon delimiters anywhere
- else in the path list. If _aa_rr_gg begins with a ``/'' then the search
- path is not used. Otherwise, each directory in the path is searched
- for _aa_rr_gg.
-
- The second form of ccdd substitutes the string _nn_ee_ww for the string _oo_ll_dd
- in the current directory name, PPWWDD, and tries to change to this new
- directory.
-
- The --LL and --PP flags are relevant to systems with symbolic links.
- The default, --LL, preserves logical naming, so that ccdd --LL .... will
- move up one component towards the root. The physical option, --PP,
- uses a physical model for paths. Thus, if /_u_s_r/_i_n_c_l_u_d_e/_s_y_s is a
- symbolic link to the directory /_s_y_s/_h, then after ccdd
- //uussrr//iinncclluuddee//ssyyss, a ccdd .... would make the current directory
- /_u_s_r/_i_n_c_l_u_d_e, while a ccdd --PP .... would make it _s_y_s.
-
- The ccdd command may not be executed by rrkksshh.
-
- eecchhoo [ _aa_rr_gg ... ]
- See eecchhoo(C) for usage and description.
-
- {1} eevvaall [ _aa_rr_gg ... ]
- The arguments are read as input to the shell and the resulting
- command(s) executed.
-
- {1} eexxeecc [ _aa_rr_gg ... ]
- If _aa_rr_gg is given, the command specified by the arguments is executed
- in place of this shell without creating a new process. Input/output
- arguments may appear and affect the current process. If no argu-
- ments are given the effect of this command is to modify file
- descriptors as prescribed by the input/output redirection list. In
- this case, any file descriptor numbers greater than 2 that are
- opened with this mechanism are closed when invoking another program.
-
- {1} eexxiitt [ _nn ]
- Causes the shell to exit with the exit status specified by _nn. If _nn
- is omitted then the exit status is that of the last command exe-
- cuted. An end-of-file will also cause the shell to exit except for
- a shell which has the iiggnnoorreeeeooff option (see ``set'' below) turned
- on.
-
- {2} eexxppoorrtt [ _nn_aa_mm_ee [ == _vv_aa_ll_uu_ee ] ] ...
- The given names are marked for automatic export to the environment
- of subsequently-executed commands.
-
- ffcc [ --ee _ee_nn_aa_mm_ee ] [ --nnllrr ] [ _ff_ii_rr_ss_tt [ _ll_aa_ss_tt ] ]
- ffcc --ee -- [ _oo_ll_dd==_nn_ee_ww ] [ _cc_oo_mm_mm_aa_nn_dd ]
- In the first form, a range of commands from _ff_ii_rr_ss_tt to _ll_aa_ss_tt is
- selected from the last HHIISSTTSSIIZZEE commands that were typed at the ter-
- minal. The arguments first and last may be specified as a number or
- as a string. A string is used to locate the most recent command
- that starts with that string. A negative number is used as an
- offset to the current command number. If the flag --ll, is selected,
- the commands are listed on standard output. Otherwise, the editor
- program _ee_nn_aa_mm_ee is invoked on a file containing these keyboard com-
- mands. If _ee_nn_aa_mm_ee is not supplied, then the value of the parameter
- FFCCEEDDIITT (default /bin/ed) is used as the editor. When editing is
- complete, the edited command(s) is executed. If _ll_aa_ss_tt is not speci-
- fied then it will be set to _ff_ii_rr_ss_tt. If _ff_ii_rr_ss_tt is not specified the
- default is the previous command for editing and --1166 for listing.
-
- The flag --rr reverses the order of the commands and the flag --nn
- suppresses command numbers when listing. In the second form the
- command is re-executed after the substitution _oo_ll_dd==_nn_ee_ww is performed.
-
- ffgg [ _jj_oo_bb... ]
- This command is only on systems that support job control. Each job
- specified is brought to the foreground. Otherwise, the current job
- is brought into the foreground. See ``Jobs'' for a description of
- the format of _jj_oo_bb.
-
- ggeettooppttss _oo_pp_tt_ss_tt_rr_ii_nn_gg _nn_aa_mm_ee [ _aa_rr_gg ... ]
- Checks _aa_rr_gg for legal options. If _aa_rr_gg is omitted, the positional pa-
- rameters are used. An option argument begins with a ``+'' or a
- ``-''. An option not beginning with ``+'' or ``-'' or the special
- argument ``--'' ends the options. _oo_pp_tt_ss_tt_rr_ii_nn_gg contains the letters
- that ggeettooppttss recognizes. If a letter is followed by a ``:'', that
- option is expected to have an argument. The options can be
- separated from the argument by blanks.
-
- ggeettooppttss places the next option letter it finds inside variable _nn_aa_mm_ee
- each time it is invoked with a ``+'' prepended when _aa_rr_gg begins with
- a ``+''. The index of the next _aa_rr_gg is stored in OOPPTTIINNDD. The option
- argument, if any, gets stored in OOPPTTAARRGG.
-
- A leading ``:'' in _oo_pp_tt_ss_tt_rr_ii_nn_gg causes ggeettooppttss to store the letter of
- an invalid option in OOPPTTAARRGG, and to set _nn_aa_mm_ee to ``?'' for an unknown
- option and to ``:'' when a required option is missing. Otherwise,
- ggeettooppttss prints an error message. The exit status is non-zero when
- there are no more options.
-
- jjoobbss [ --llnnpp ] [ _jj_oo_bb ... ]
- Lists information about each given job, or all active jobs if _jj_oo_bb is
- omitted. The --ll flag lists process ids in addition to the normal
- information. The --nn flag only displays jobs that have stopped or
- exited since last notified. The --pp flag causes only the process
- group to be listed. See ``Jobs'' for a description of the format of
- _jj_oo_bb.
-
- kkiillll [ --_ss_ii_gg ] _jj_oo_bb ...
- kkiillll --ll
- Sends either the TTEERRMM (terminate) signal or the specified signal to
- the specified jobs or processes. Signals are either given by number
- or by names (as given in /_u_s_r/_i_n_c_l_u_d_e/_s_i_g_n_a_l._h, stripped of the pre-
- fix ``SIG''). If the signal being sent is TTEERRMM (terminate) or HHUUPP
- (hangup), then the job or process will be sent a CCOONNTT (continue)
- signal if it is stopped. The argument _jj_oo_bb can specify the process
- id of a process that is not a member of one of the active jobs. See
- ``Jobs'' for a description of the format of _jj_oo_bb. In the second
- form, kkiillll --ll, the signal numbers and names are listed.
-
- lleett _aa_rr_gg ...
- Each _aa_rr_gg is a separate arithmetic expression to be evaluated. See
- ``Arithmetic evaluation'' above, for a description of arithmetic
- expression evaluation.
-
- The exit status is 0 if the value of the last expression is non-
- zero, and 1 otherwise.
-
- {1} nneewwggrrpp [ _aa_rr_gg ... ]
- Equivalent to eexxeecc //bbiinn//nneewwggrrpp _aa_rr_gg ....
-
- pprriinntt [ --RRnnpprrssuu[_nn ] ] [ _aa_rr_gg ... ]
- The shell output mechanism. With no flags or with flag ``-'' or
- ``--'' the arguments are printed on standard output as described by
- eecchhoo(C). In raw mode, --RR or --rr, the escape conventions of eecchhoo are
- ignored. The --RR option will print all subsequent arguments and
- options other than --nn. The --pp option causes the arguments to be
- written onto the pipe of the process spawned with ||&& instead of
- standard output. The --ss option causes the arguments to be written
- onto the history file instead of standard output. The --uu flag can
- be used to specify a one-digit file descriptor unit number _nn on
- which the output will be placed. The default is 1. If the flag --nn
- is used, no new-line is added to the output.
-
- ppwwdd [ --LLPP ]
- Equivalent to pprriinntt --rr -- $$PPWWDD
-
- The --LL and --PP flags are relevant only on systems with symbolic
- links. The default, --LL, uses a logical model, while --PP uses a phy-
- sical model, for paths. Thus, if /_u_s_r/_i_n_c_l_u_d_e/_s_y_s is a symbolic
- link to the directory /_s_y_s/_h, then ccdd//uussrr//iinncclluuddee//ssyyss;;ppwwdd;;ppwwdd--PP will
- print /_u_s_r/_i_n_c_l_u_d_e/_s_y_s, followed by /_s_y_s/_h.
-
- rreeaadd [ --pprrssuu[ _nn ] ] [ _nn_aa_mm_ee??_pp_rr_oo_mm_pp_tt ] [ _nn_aa_mm_ee ... ]
- The shell input mechanism. One line is read and is broken up into
- fields using the characters in IIFFSS as separators. In raw mode, --rr,,
- a ``\'' at the end of a line does not signify line continuation.
- The first field is assigned to the first _nn_aa_mm_ee, the second field to
- the second _nn_aa_mm_ee, etc., with leftover fields assigned to the last
- _nn_aa_mm_ee. The --pp option causes the input line to be taken from the
- input pipe of a process spawned by the shell using ||&&. If the --ss
- flag is present, the input will be saved as a command in the history
- file. The flag --uu can be used to specify a one digit file descrip-
- tor unit to read from. The file descriptor can be opened with the
- eexxeecc special command. The default value of _nn is 0. If _nn_aa_mm_ee is
- omitted then RREEPPLLYY is used as the default name. The exit status is
- 0 unless an end-of-file is encountered. An end-of-file with the --pp
- option causes cleanup for this process so that another can be
- spawned. If the first argument contains a ``?'', the remainder of
- this word is used as a prompt on standard error when the shell is
- interactive. The exit status is 0 unless an end-of-file is encoun-
- tered.
-
- {2} rreeaaddoonnllyy [ _nn_aa_mm_ee [ == _vv_aa_ll_uu_ee ] ] ...
- The given names are marked readonly and these names cannot be
- changed by subsequent assignment.
-
- {1} rreettuurrnn [ _nn ]
- Causes a shell function to return to the invoking script with the
- return status specified by _nn. If _nn is omitted then the return
- status is that of the last command executed. If rreettuurrnn is invoked
- while not in a function or a ``.'' script, then it is the same as
- an eexxiitt.
-
- set [ +-aefhkmnopstuvx ] [ +-o option ]... [ +-A name ] [ arg ... ]
- The flags for this command have meaning as follows:
-
- --AA Array assignment. Unset the variable _nn_aa_mm_ee and assign values
- sequentially from the list _aa_rr_gg. If ++AA is used, the variable
- _nn_aa_mm_ee is not unset first.
-
- --aa All subsequent parameters that are defined are automatically
- exported.
-
- --ee If a command has a non-zero exit status, execute the EERRRR
- trap, if set, and exit. This mode is disabled while reading
- profiles.
-
- --ff Disables file name generation.
-
- --hh Each command becomes a tracked alias when first encountered.
-
- --kk All parameter assignment arguments are placed in the
- environment for a command, not just those that precede the
- command name.
-
- --mm Background jobs will run in a separate process group and a
- line will print upon completion. The exit status of back-
- ground jobs is reported in a completion message. On systems
- with job control, this flag is turned on automatically for
- interactive shells.
-
- --nn Read commands and check them for syntax errors, but do not
- execute them. Ignored for interactive shells.
-
- --oo List all option settings.
-
- The argument following --oo can be one of the following _oo_pp_tt_ii_oo_nn
- names:
-
- aalllleexxppoorrtt Same as --aa.
-
- eerrrreexxiitt Same as --ee.
-
- bbggnniiccee All background jobs are run at a lower priority.
- This is the default mode.
-
- eemmaaccss Puts you in an eemmaaccss style in-line editor for com-
- mand entry.
-
- ggmmaaccss Puts you in a ggmmaaccss style in-line editor for com-
- mand entry.
-
- iiggnnoorreeeeooff The shell will not exit on end-of-file. The com-
- mand eexxiitt must be used.
-
- kkeeyywwoorrdd Same as --kk.
-
- mmaarrkkddiirrss All directory names resulting from file name gen-
- eration have a trailing ``/'' appended.
-
- mmoonniittoorr Same as --mm.
-
- nnoocclloobbbbeerr Prevents output redirection (>) from truncating
- existing files. Require >>|| to truncate a file
- when turned on.
-
- nnooeexxeecc Same as --nn.
-
- nnoogglloobb Same as --ff.
-
- nnoolloogg Do not save function definitions in history file.
-
- nnoouunnsseett Same as --uu.
-
- pprriivviilleeggeedd
- Same as --pp.
-
- ttrraacckkaallll Same as --hh.
-
- vveerrbboossee Same as --vv.
-
- vvii Puts you in insert mode of a vvii style in-line edi-
- tor until you hit escape character 003333. This puts
- you in move mode. A return sends the line.
-
- vviirraaww Each character is processed as it is typed in vvii
- mode.
-
- xxttrraaccee Same as --xx.
-
- If no _oo_pp_tt_ii_oo_nn name is supplied then the current option set-
- tings are printed.
-
- --pp Disables processing of the $$HHOOMMEE/._p_r_o_f_i_l_e file and uses the
- file /_e_t_c/_s_u_i_d__p_r_o_f_i_l_e instead of the EENNVV file. This mode
- is on whenever the effective uid (gid) is not equal to the
- real uid (gid). Turning this off causes the effective uid
- and gid to be set to the real uid and gid.
-
- --ss Sort the positional parameters lexicographically.
-
- --tt Exit after reading and executing one command.
-
- --uu Treat unset parameters as an error when substituting.
-
- --vv Print shell input lines as they are read.
-
- --xx Print commands and their arguments as they are executed.
-
- -- Turns off --xx and --vv flags and stops examining arguments for
- flags.
-
- ---- Do not change any of the flags; useful in setting $$11 to a
- value beginning with ``-''. If no arguments follow this
- flag then the positional parameters are unset.
-
- Using ``+'' rather than ``-'' causes these flags to be turned off.
- These flags can also be used upon invocation of the shell. The
- current set of flags may be found in $$--. Unless --AA is specified,
- the remaining arguments are positional parameters and are assigned,
- in order, to $$11 $$22 .... If no arguments are given then the names
- and values of all named parameters are printed on the standard out-
- put. If the only argument is ``+'', the names of all named parame-
- ters are printed.
-
- {1} sshhiifftt [ _nn ]
- The positional parameters from $$_nn++11 ... are renamed 11 ......, default
- _nn is 1. The parameter _nn can be any arithmetic expression that
- evaluates to a non-negative number less than or equal to $$##.
-
- {1} ttiimmeess
- Print the accumulated user and system times for the shell and for
- processes run from the shell.
-
- {1} ttrraapp [ _aa_rr_gg ] [ _ss_ii_gg ] ...
- _aa_rr_gg is a command to be read and executed when the shell receives
- signal(s) _ss_ii_gg. (Note that _aa_rr_gg is scanned once when the trap is set
- and once when the trap is taken.) Each _ss_ii_gg can be given as a number
- or as the name of the signal. Trap commands are executed in order
- of signal number. Any attempt to set a trap on a signal that was
- ignored on entry to the current shell is ineffective. If _aa_rr_gg is
- omitted or is ``-'', then all trap(s) _ss_ii_gg are reset to their origi-
- nal values. If _aa_rr_gg is the null string then this signal is ignored
- by the shell and by the commands it invokes. If _ss_ii_gg is EERRRR then _aa_rr_gg
- will be executed whenever a command has a non-zero exit status. If
- _ss_ii_gg is DDEEBBUUGG then _aa_rr_gg will be executed after each command. If _ss_ii_gg
- is 00 or EEXXIITT and the ttrraapp statement is executed inside the body of a
- function, then the command _aa_rr_gg is executed after the function com-
- pletes. If _ss_ii_gg is 00 or EEXXIITT for a ttrraapp set outside any function
- then the command _aa_rr_gg is executed on exit from the shell. The ttrraapp
- command with no arguments prints a list of commands associated with
- each signal number.
-
- {2} ttyyppeesseett [ +-HLRZfilrtux [n] ] [ name[ =value ] ] ...
- Sets attributes and values for shell parameters. When invoked
- inside a function, a new instance of the parameter _nn_aa_mm_ee is created.
- The parameter value and type are restored when the function com-
- pletes. The following list of attributes may be specified:
-
- --HH This flag provides UNIX system to host-name file mapping on
- non-UNIX system machines.
-
- --LL Left justify and remove leading blanks from _vv_aa_ll_uu_ee. If _nn is
- non-zero it defines the width of the field; otherwise it is
- determined by the width of the value of first assignment. When
- the parameter is assigned to, it is filled on the right with
- blanks or truncated, if necessary, to fit into the field. Lead-
- ing zeros are removed if the --ZZ flag is also set. The --RR flag
- is turned off.
-
- --RR Right justify and fill with leading blanks. If _nn is non-zero it
- defines the width of the field; otherwise it is determined by
- the width of the value of first assignment. The field is left
- filled with blanks or truncated from the end if the parameter is
- reassigned. The --LL flag is turned off.
-
- --ZZ Right justify and fill with leading zeros if the first non-blank
- character is a digit and the --LL flag has not been set. If _nn is
- non-zero it defines the width of the field; otherwise it is
- determined by the width of the value of first assignment.
-
- --ff The names refer to function names rather than parameter names.
- No assignments can be made and the only other valid flags are
- --tt, --uu and --xx. The flag --tt turns on execution tracing for this
- function. The flag --uu causes this function to be marked as
- undefined. The FFPPAATTHH variable will be searched to find the
- function definition when the function is referenced. The flag
- --xx allows the function definition to remain in effect across
- shell procedures invoked by name.
-
- --ii Parameter is an integer. This makes arithmetic faster. If _nn is
- non-zero it defines the output arithmetic base; otherwise the
- first assignment determines the output base.
-
- --ll All upper-case characters converted to lower-case. The upper-
- case flag, --uu is turned off.
-
- --rr The given _nn_aa_mm_ees are marked read only and these names cannot be
- changed by subsequent assignment.
-
- --tt Tags the named parameters. Tags are user definable and have no
- special meaning to the shell.
-
- --uu All lower-case characters are converted to upper-case charac-
- ters. The lower-case flag, --ll, is turned off.
-
- --xx The given _nn_aa_mm_ees are marked for automatic export to the environ-
- ment of subsequently-executed commands.
-
- Using ``+'' rather than ``-'' causes these flags to be turned off.
- If no _nn_aa_mm_ee arguments are given but flags are specified, a list of
- names (and optionally the values) of the parameters which have these
- flags set is printed. (Using ``+'' rather than ``-'' keeps the
- values from being printed.) If no _nn_aa_mm_ees and flags are given, the
- names and attributes of all parameters are printed.
-
- uulliimmiitt [ --HHSS ] [ _ll_ii_mm_ii_tt ]
- Set or display a resource limit. The number of 512-byte blocks on
- files written by child processes (files of any size may be read).
- The limit is set when _ll_ii_mm_ii_tt is specified. The value of _ll_ii_mm_ii_tt can be
- a number or the value uunnlliimmiitteedd. The --HH and --SS flags specify
- whether the hard limit or the soft limit is set. A hard limit can-
- not be increased once it is set. A soft limit can be increased up to
- the value of the hard limit. If neither the --HH or --SS option is
- specified, the limit applies to both. The current limit is printed
- when _ll_ii_mm_ii_tt is omitted. In this case the soft limit is printed
- unless --HH is specified.
-
- uummaasskk [ _mm_aa_ss_kk ]
- The user file-creation mask is set to _mm_aa_ss_kk (see uummaasskk). _mm_aa_ss_kk can
- either be an octal number or a symbolic value as described in
- cchhmmoodd(C). If a symbolic value is given, the new umask value is the
- complement of the result of applying _mm_aa_ss_kk to the complement of the
- previous umask value. If _mm_aa_ss_kk is omitted, the current value of the
- mask is printed.
-
- uunnaalliiaass _nn_aa_mm_ee ...
- The parameters given by the list of _nn_aa_mm_ees are removed from the alias
- list.
-
- uunnsseett [ --ff ] _nn_aa_mm_ee ...
- The parameters given by the list of names are unassigned, that is,
- their values and attributes are erased. Readonly variables cannot
- be unset. If the flag, --ff, is set, then the names refer to function
- names. Unsetting EERRRRNNOO, LLIINNEENNOO, MMAAIILLCCHHEECCKK, OOPPTTAARRGG, OOPPTTIINNDD, RRAANNDDOOMM,
- SSEECCOONNDDSS, TTMMOOUUTT, and ``_'' removes their special meaning even if they
- are subsequently assigned to.
-
- {1} wwaaiitt [ _jj_oo_bb ]
- Wait for the specified job and report its termination status. If
- _jj_oo_bb is not given then all currently active child processes are
- waited for. The exit status from this command is that of the pro-
- cess waited for. See ``Jobs'' for a description of the format of
- _jj_oo_bb.
-
- wwhheennccee [ --ppvv ] _nn_aa_mm_ee ...
- For each _nn_aa_mm_ee, indicate how it would be interpreted if used as a
- command name.
-
- The flag, --vv, produces a more verbose report.
-
- The flag, --pp, does a path search for _nn_aa_mm_ee even if name is an alias,
- a function, or a reserved word.
-
- _I_n_v_o_c_a_t_i_o_n
-
- If the shell is invoked by eexxeecc(S), and the first character of argument
- zero ($$00) is ``-'', then the shell is assumed to be a login shell and
- commands are read from /_e_t_c/_p_r_o_f_i_l_e and then from either ._p_r_o_f_i_l_e in the
- current directory or $$HHOOMMEE/._p_r_o_f_i_l_e, if either file exists. Next, com-
- mands are read from the file named by performing parameter substitution
- on the value of the environment parameter EENNVV if the file exists. If the
- --ss flag is not present and _aa_rr_gg is, then a path search is performed on the
- first _aa_rr_gg to determine the name of the script to execute. The script _aa_rr_gg
- must have read permission and any sseettuuiidd and sseettggiidd settings will be
- ignored. Commands are then read as described below; the following flags
- are interpreted by the shell when it is invoked:
-
- --cc _ss_tt_rr_ii_nn_gg If the --cc flag is present then commands are read from _ss_tt_rr_ii_nn_gg.
-
- --ss If the --ss flag is present or if no arguments remain then com-
- mands are read from the standard input. Shell output, except
- for the output of the special commands listed above, is written
- to file descriptor 2.
-
- --ii If the --ii flag is present or if the shell input and output are
- attached to a terminal (as told by iiooccttll(S)) then this shell is
- interactive. In this case TTEERRMM is ignored (so that kkiillll 00 does
- not kill an interactive shell) and IINNTTRR is caught and ignored
- (so that wwaaiitt is interruptible). In all cases, QQUUIITT is ignored
- by the shell.
-
- --rr If the --rr flag is present the shell is a restricted shell.
-
- The remaining flags and arguments are described under the sseett command
- above.
-
- _r_k_s_h _o_n_l_y
-
- rrkksshh is used to set up login names and execution environments whose capa-
- bilities are more controlled than those of the standard shell. The
- actions of rrkksshh are identical to those of kksshh, except that the following
- are disallowed:
-
- changing directory (see ccdd(C)),
- setting the value of SSHHEELLLL, EENNVV, or PPAATTHH,
- specifying path or command names containing ``/'',
- redirecting output (>>, >>||, <<>>, and >>>>).
-
- The restrictions above are enforced after ._p_r_o_f_i_l_e and the EENNVV files are
- interpreted.
- When a command to be executed is found to be a shell procedure, rrkksshh
- invokes kksshh to execute it. Thus, it is possible to provide shell pro-
- cedures to the end-user that have access to the full power of the stan-
- dard shell, while imposing a limited menu of commands; this scheme
- assumes that the end-user does not have write and execute permissions in
- the same directory.
-
- The net effect of these rules is that the writer of the ._p_r_o_f_i_l_e has com-
- plete control over user actions, by performing guaranteed setup actions
- and leaving the user in an appropriate directory (probably _n_o_t the login
- directory).
-
- The system administrator often sets up a directory of commands (for exam-
- ple, /_u_s_r/_r_b_i_n) that can be safely invoked by rrkksshh. There is also a re-
- stricted editor, rreedd.
-
- Note that simply setting a user's login shell to rrkksshh does _n_o_t make their
- account ``safe''. Some thought and care must be put into creating a
- properly restricted environment.
-
- _D_i_a_g_n_o_s_t_i_c_s
-
- Errors detected by the shell, such as syntax errors, cause the shell to
- return a non-zero exit status. Otherwise, the shell returns the exit
- status of the last command executed (see also the eexxiitt command above).
- If the shell is being used non-interactively then execution of the shell
- file is abandoned. Run-time errors detected by the shell are reported by
- printing the command or function name and the error condition. If the
- line number that the error occurred on is greater than one, then the line
- number is also printed in square brackets ([ ]) after the command or
- function name.
-
- _F_i_l_e_s
-
- /_e_t_c/_p_a_s_s_w_d
- /_e_t_c/_p_r_o_f_i_l_e
- /_e_t_c/_s_u_i_d__p_r_o_f_i_l_e
- $$HHOOMMEE/._p_r_o_f_i_l_e
- /_t_m_p/_s_h*
- /_d_e_v/_n_u_l_l
-
- _S_e_e _a_l_s_o
-
- ccaatt(C), ccdd(C), cchhmmoodd(C), ccuutt(C), eecchhoo(C), eennvv(C), llnn(C), nneewwggrrpp(C),
- ppaassttee(C), ssttttyy(C), tteesstt(C), uummaasskk(C), vvii(C), dduupp(S), eexxeecc(S), ffoorrkk(S),
- iiooccttll(S), llsseeeekk(S), ppiippee(S), ssiiggnnaall(S), uummaasskk(S), uulliimmiitt(S), wwaaiitt(S),
- rraanndd(S), aa..oouutt(FP), pprrooffiillee(M) and eennvviirroonn(M).
-
- The chapter entitled ``The Korn Shell'' in the SCO UNIX _U_s_e_r'_s _G_u_i_d_e.
-
- _N_o_t_e_s
-
- If a command which is a tracked alias is executed, and then a command
- with the same name is installed in a directory in the search path before
- the directory where the original command was found, the shell will con-
- tinue to eexxeecc the original command. Use the --tt option of the aalliiaass com-
- mand to correct this situation.
-
- Some very old shell scripts contain a ``^'' as a synonym for the pipe
- character (||).
-
- Using the ffcc built-in command within a compound command will cause the
- whole command to disappear from the history file.
-
- The built-in command .. _ff_ii_ll_ee reads the whole file before any commands are
- executed. Therefore, aalliiaass and uunnaalliiaass commands in the file will not
- apply to any functions defined in the file.
-
- Traps are not processed while a job is waiting for a foreground process.
- Thus, a trap on CCHHLLDD won't be executed until the foreground job ter-
- minates.
-
-